package com.study.java.classloader.myClassLoader.DecryptClassLoader;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

/**
* @Name: EncryptUtil
* @Description: 字节码文件类加密器
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-2-9 下午4:38:15 
* @Version: V1.0
 */
public class EncryptUtil {
	
	/**
	* @Name: encry
	* @Description: 对指定的字节码文件进行加密处理
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-2-9 下午4:41:00
	* @Parameters: @param src 源字节码文件全路径
	* @Parameters: @param dest 加密后的字节码文件全路径
	* @Return: void 无
	 */
	public static void encry(String src, String dest) {
		InputStream is = null ;
		OutputStream os = null ;
		try {
			is = new FileInputStream(src) ;
			os = new FileOutputStream(dest) ;
			int b = -1 ;
			while((b = is.read()) != -1) {
				os.write(b^0xff) ;	//简单加密：将每个字节进行取反操作
			}
		} catch (Exception e) {
			e.printStackTrace() ;
		} finally {
			if(is != null) {
				try {
					is.close() ;
				} catch (Exception e) {
					e.printStackTrace() ;
				}
			}
			if(os != null) {
				try {
					os.close() ;
				} catch (Exception e) {
					e.printStackTrace() ;
				}
			}
		}
	}

}
















